package com.eclipse.e20200127_匿名内部类.匿名内部类;

/**
 * 匿名内部类 
 * 就是一个没有名字的局部内部类
 * 匿名内部类 是没有构造器       一个文件对应一个类
 * 
 * 匿名内部类 只使用一次的时候，来去使用 匿名内部类 
 * new 父类的构造器  或  接口（）｛
 * 	内部写的代码（在new时候就会自动执行）
 * ｝ 
 * 匿名内部类必须得要有父类才，  或者是实现了接口
 * 
 *
 */

interface IUSB{
	void swapData();
}

//主板
class MotherBoard{
	void pluginIn(IUSB u) {
		u.swapData();
	}
}

//class Printer implements IUSB{
//	public void swapData() {
//		System.out.println("打印工作");
//	}
//}


class KeyBoard implements IUSB{
	public void swapData() {
		System.out.println("键盘打字");
	}
}


class Mouse  implements IUSB {
	public void swapData() {
		System.out.println("鼠标移动");
	}
}

public class Test {
	public static void main(String[] args) {
		
		IUSB m = new Mouse();
		IUSB k = new KeyBoard();
//		IUSB p = new Printer();
		
		MotherBoard b = new MotherBoard();
		b.pluginIn(m);
		b.pluginIn(k);
		
//		b.pluginIn(p);
		
		b.pluginIn(new IUSB() {
			public void swapData() {
				System.out.println("打印工作");
			}
		});
		
	}
}
